/**
 * 渠道管理相关接口类型定义
 * @author 张效玮2 yythis@163.com
 * @date 2025-01-15
 */

/** 渠道服务商基础信息 */
export interface Channel {
  /** 渠道ID */
  id: string
  /** 渠道名称 */
  name: string
  /** 负责人 */
  owner: string
  /** 联系电话 */
  phone: string
  /** 渠道状态：active-合作中，inactive-已停用 */
  status: "active" | "inactive"
  /** 创建时间 */
  createTime: string
  /** 下属代理数量 */
  agentCount: number
  /** 下属代理列表 */
  agents?: Agent[]
}

/** 代理商基础信息 */
export interface Agent {
  /** 代理商ID */
  id: string
  /** 代理商名称 */
  name: string
  /** 负责人 */
  manager?: string
  /** 联系电话 */
  phone?: string
  /** 代理商状态：active-启用，inactive-禁用 */
  status: "active" | "inactive"
  /** 代理商级别：second-二级代理，third-三级代理 */
  level: "second" | "third"
  /** 级别显示文本 */
  levelText: string
  /** 是否展开显示子代理 */
  expanded?: boolean
  /** 子代理列表（仅二级代理有） */
  children?: Agent[]
  /** 父级代理商ID（仅三级代理有） */
  parentId?: string
}

/** 创建渠道服务商请求参数 */
export interface CreateChannelRequestData {
  /** 渠道名称 */
  channelName: string
  /** 渠道类型 */
  channelType: string
  /** 联系人 */
  contactPerson: string
  /** 联系电话 */
  contactPhone: string
  /** 状态 */
  status: "合作中" | "暂停合作" | "终止合作"
  /** 合作开始日期 */
  cooperationStartDate: string
  /** 渠道等级 */
  channelLevel: number
}

/** 更新渠道服务商请求参数 */
export interface UpdateChannelRequestData extends CreateChannelRequestData {
  /** 渠道ID */
  id: string
}

/** 创建代理商请求参数 */
export interface CreateAgentRequestData {
  /** 代理商名称 */
  name: string
  /** 负责人 */
  manager: string
  /** 联系电话 */
  phone: string
  /** 代理商状态 */
  status: "active" | "inactive"
  /** 渠道ID（创建二级代理时） */
  channelId?: string
  /** 父级代理商ID（创建三级代理时） */
  parentAgentId?: string
}

/** 更新代理商请求参数 */
export interface UpdateAgentRequestData extends CreateAgentRequestData {
  /** 代理商ID */
  id: string
}

/** 渠道列表查询参数 */
export interface ChannelListRequestData {
  /** 当前页码 */
  current: number
  /** 每页条数 */
  size: number
  /** 搜索关键词（渠道名称、负责人、电话） */
  keyword?: string
  /** 渠道状态筛选 */
  status?: "active" | "inactive"
}

/** 渠道列表响应数据 */
export type ChannelListResponseData = ApiResponseData<{
  /** 渠道列表 */
  list: Channel[]
  /** 总条数 */
  total: number
}>

/** 渠道详情响应数据 */
export type ChannelDetailResponseData = ApiResponseData<Channel>

/** 代理商列表响应数据 */
export type AgentListResponseData = ApiResponseData<{
  /** 代理商列表 */
  list: Agent[]
  /** 总条数 */
  total: number
}>
